package com.ddpt.platform.common.export.vo.mall;

import com.ddpt.platform.common.export.Export;
import com.ddpt.platform.common.export.vo.QueryDataVo;
import com.ddpt.platform.common.goods.GoodsTypeEnum;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class GoodsVo extends QueryDataVo {

    /**
     * mallGoods,//商城商品
     * memberGoods,//会员商品
     * storeGoods,//商家商品
     */
    @Export(value = "商品类型")
    private String goodsType;

    /**
     * 商品名称
     */
    @Export(value = "商品名称")
    private String name;

    /**
     * 缩略图
     */
    @Export(value = "缩略图")
    private String thumbnailUrl;

    /**
     * 详情信息图文
     */
    @Export(value = "详情信息图文")
    private String detailText;

    /**
     * 商品轮播图，多张逗号分割
     */
    @Export(value = "商品轮播图")
    private String bannerImages;

    /**
     * 商品描述
     */
    @Export(value = "商品描述")
    private String description;

    /**
     * 商家id
     */
    @Export(value = "商家id", isStr = true)
    private Long storeId;

    /**
     * 商品类型
     *
     * @see GoodsTypeEnum
     */
    @Export(value = "商品类型")
    private String type;

    /**
     * 商品原价
     */
    @Export(value = "商品原价", isStr = true)
    private Integer originalPrice;

    /**
     * 规格参数
     */
    @Export(value = "规格参数")
    private String specification;

    /**
     * 是否上线状态  0-否  1-是
     */
    @Export(value = "是否上线状态", key = {"0", "1"}, val = {"否", "是"})
    private Integer onlineStatus;

    /**
     * 是否关联存在的订单  0-否  1-是
     */
    @Export(value = "是否关联存在的订单", key = {"0", "1"}, val = {"否", "是"})
    private Integer existOrder;

    /**
     * 销量
     */
    @Export(value = "销量", isStr = true)
    private Integer sellCount;

    /**
     * 礼品包选几个商品 选一个，选多个
     *
     * @see -1全选 1选一个
     */
    @Export(value = "礼品包选几个商品", key = {"-1", "1"}, val = {"选一个", "选多个"})
    private Integer packNum;

    /**
     * 是否展示商家信息 0-不展示 1-展示
     */
    @Export(value = "是否展示商家信息", key = {"0", "1"}, val = {"不展示", "展示"})
    private Integer showStoreInfo;

    //排序
    @Export(value = "排序", isStr = true)
    private Integer sort;

    //商品限购
    @Export(value = "商品限购", isStr = true)
    private Integer productLimit;

    //商家商品id
    @Export(value = "商家商品id", isStr = true)
    private Long storeGoodsId;

    //允许售卖的开始时间
    @Export(value = "允许售卖的开始时间", isTime = true)
    private Long sellStartTime;

    //允许售卖的结束时间
    @Export(value = "允许售卖的结束时间", isTime = true)
    private Long sellEndTime;

    //商品剩余库存
    @Export(value = "商品剩余库存", isStr = true)
    private Integer stock;

    /**
     * 总库存,默认为规格库存的和
     */
    @Export(value = "总库存", isStr = true)
    private Integer totalStock;

    /**
     * 显示价格：最小支付金额
     */
    @Export(value = "显示价格：最小支付金额", isStr = true)
    private Integer showMinPrice;

    /**
     * 显示可用于支付的代币名称,多条逗号分割
     */
    @Export(value = "显示可用于支付的代币名称")
    private String showCurrencyNames;

    /**
     * 显示价格：最大支付金额
     */
    @Export(value = "显示价格：最大支付金额", isStr = true)
    private Integer showMaxPrice;

    /**
     * 显示价格：最小支付代币
     */
    @Export(value = "显示价格：最小支付代币", isStr = true)
    private Integer showMinCurrencyPrice;

    /**
     * 显示价格：最大支付代币
     */
    @Export(value = "显示价格：最大支付代币", isStr = true)
    private Integer showMaxCurrencyPrice;

    /**
     * 商品上级id
     */
    @Export(value = "商品上级id", isStr = true)
    private Long parentId;

    /**
     * 上架时间
     */
    @Export(value = "上架时间", isTime = true)
    private Long onlineTime;

    //商城商品字段
    //商品种类
    @Export(value = "上架时间", isStr = true)
    private Long categoryId;

    //商品分类名称
    @Export(value = "商品分类名称")
    private String categoryName;

    /**
     * 可见限制规则
     */
    @Export(value = "可见限制规则")
    private String showExpression;

    //商家商品字段
    //商品唯一标识
    @Export(value = "商品唯一标识")
    private String itemId;

    //商品分类id
    @Export(value = "商品分类id", isStr = true)
    private Long productCategoryId;

    //审核状态
    @Export(value = "审核状态", isStr = true)
    private Integer verifyStatus;

    //结算价
    @Export(value = "结算价", isStr = true)
    private Integer settlePrice;

    //创建者id
    @Export(value = "创建者id", isStr = true)
    private Long createUserId;
}
